home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / game / patch / StrmblHD.lha / Stormball / src / StormballHDDev / SB.asm < prev    next >
Assembly Source File  |  1997-07-30  |  3KB  |  174 lines

  1. ; *** Stormball HD Loader V1.2
  2. ; *** Written by Keith Krellwitz (kkrellwi@nmu.edu)
  3.  
  4.     MACHINE    68000
  5.  
  6.     include    "/lib/libs.i"
  7.     include    "/lib/macros.i"
  8.     include    "/lib/refs.i"
  9.  
  10.     HD_PARAMS    "sb.d","CON:20/20/400/200/Stormball HD Loader/AUTO",STD_DISK_SIZE,1
  11.  
  12. _loader:
  13.     
  14.     Mac_printf    "Stormball HD Loader v1.2"
  15.     Mac_printf    "Programmed by Keith Krellwitz (Abaddon) ©1997"
  16.     Mac_printf    "Thanks to Jean-François Fabre"
  17.  
  18.     JSRABS    LoadDisks
  19.     JSRABS    TransfRoutines
  20.  
  21.     move.l    #CACRF_CopyBack,D1
  22.     moveq.l    #0,D0
  23.     JSRABS    Degrade
  24.  
  25.     GO_SUPERVISOR
  26.     SAVE_OSDATA    $80000
  27.  
  28.     GETUSRADDR SBBoot
  29.     move.l    d0,a0
  30.     jmp        (a0)
  31.  
  32. _UserPatchRoutines:
  33. SBBoot:    
  34.  
  35.     LEA        $0007F000,A7
  36.     MOVE.W    #$7FFF,$00DFF09A
  37.     MOVE.W    #$7FFF,$00DFF09C
  38.     MOVE.W    #$7FFF,$00DFF096
  39.     MOVE    #$2700,SR
  40.  
  41.     move.l    #$0,d0
  42.     move.l    #$0,d3
  43.     lea        $800,a0
  44.     move.l    #$28f,d1            ;<--track offset of main in image
  45.     move.l    #$be,d2                ;<--length of main
  46.     JSRGEN    ReadRobSectorsFast
  47.     bsr        patch
  48.  
  49.     JSRGEN    FlushCachesHard
  50.     JSRGEN    ResetSprites
  51.  
  52.     jmp        $800
  53.  
  54. patch:
  55.     bsr        patloader1
  56.     bsr        patprot
  57.     bsr        patquit
  58.     bsr        patldsv
  59.     rts
  60.  
  61. patloader1:
  62.     PATCHGENJSR    $73d4,ReadRobSectorsFast
  63.     move.l    #$4cdf3ffe,$73da
  64.     move.w    #$4e75,$73de
  65.     JSRGEN    FlushCachesHard
  66.     rts
  67.  
  68. patprot:
  69.     move.b    #$ff,$f7c8
  70.     move.l    #$6000024a,$d16e
  71.     JSRGEN    FlushCachesHard
  72.     rts
  73.  
  74. patquit:
  75.     PATCHUSRJSR    $9d80,KbInt
  76.     JSRGEN    FlushCachesHard
  77.     rts
  78.  
  79. patldsv:
  80.     PATCHUSRJSR    $7386,diskcheck
  81.     PATCHUSRJSR    $3af2,loadsave
  82.     PATCHUSRJSR    $3aca,loadsave
  83.     JSRGEN    FlushCachesHard
  84.     rts
  85.  
  86. diskcheck:
  87.     moveq    #$0,d0
  88. cload:
  89.     cmpi.w    #$3,d7
  90.     beq        clr1
  91. csave:
  92.     cmpi.w    #$4,d7
  93.     beq        clr1
  94.     bra        check
  95. clr1:
  96.     STORE_REGS
  97.     moveq    #$1e,d0
  98. clear:
  99.     clr.b    (a0)+
  100.     dbf        d0,clear
  101.     RESTORE_REGS
  102.     lea        $34a2d,a1
  103.     bra        cdone
  104. check:
  105.     jmp        $73ca
  106. cdone:
  107.     JSRGEN    FlushCachesHard
  108.     rts    
  109.  
  110. loadsave:
  111.     cmpi.w    #$8000,d3                 ;load
  112.     bne        save
  113.     STORE_REGS
  114.     lea        $48ab0,a1
  115.     lea        savename(pc),a0
  116.     bsr        convert
  117.     move.l    #$26,d1
  118.     JSRGEN    ReadFileHD
  119.     RESTORE_REGS
  120.     bra        done
  121. save:
  122.     cmpi.w    #$8001,d3
  123.     bne        done
  124.     STORE_REGS
  125.     lea        $48ab0,a1
  126.     lea        savename(pc),a0
  127.     bsr        convert
  128.     move.l    #$26,d1
  129.     JSRGEN    WriteFileHD
  130.     RESTORE_REGS
  131.     bra     done
  132. done:
  133.     JSRGEN    FlushCachesHard
  134.     rts    
  135.  
  136. convert:
  137.     STORE_REGS
  138.     move    d4,d0
  139.     lsr        #4,d0
  140.     bsr        nibble
  141.     move.b    d0,7(a0)
  142.     move.b    d4,d0
  143.     bsr        nibble
  144.     move.b    d0,8(a0)
  145.     RESTORE_REGS
  146.     JSRGEN    FlushCachesHard
  147.     rts
  148. nibble:
  149.     and.b    #$f,d0
  150.     addi.b    #$30,d0
  151.     cmp.b    #$3a,d0
  152.     bcs        cok
  153.     addi.b    #$7,d0
  154. cok:
  155.     JSRGEN    FlushCachesHard
  156.     rts
  157.  
  158. KbInt:
  159.     move.b    d0,$9d4e
  160.     cmp.b    #$59,d0                ; f10    
  161.     bne        noquit
  162.     JSRGEN    InGameExit
  163. noquit:
  164.     rts
  165. savename:
  166.     dc.b    "sb.save00",0
  167.     even
  168. _general_pbuffer
  169.     dc.l    0
  170. _user_pbuffer
  171.     dc.l    0
  172. _EndUserPatchRoutines:
  173.  
  174.